\chapter{bsp }
\hypertarget{md_bsp_2bsp}{}\label{md_bsp_2bsp}\index{bsp@{bsp}}
BSP

这是\+BSP层的说明文档。

\begin{quote}
TODO\+:
\begin{DoxyEnumerate}
\item 增加硬件和软件\+CRC支持,统一不同crc顺序和计算码的调用方式 
\end{DoxyEnumerate}\end{quote}


bsp的功能是提供对片上（\+MCU中）外设的封装，即单片机芯片内部拥有的功能的封装。\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}在开发板pcb上集成的模块(蜂鸣器，加热电阻，wifi等)应该放在module层而不是这里\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}。

bsp应该提供几种接口。包括初始化接口，一般命名为{\ttfamily XXXRegister()}(对于只有一个instance的可以叫{\ttfamily XXXInit()},但建议统一风格都叫register)；调用此模块实现的必要功能，如通信型外设（\+Cube\+MX下的connectivity）提供接收和发送的接口，以及接收完成、发送完成（若有必要，或有发送队列需求）的数据回调函数。


\begin{DoxyItemize}
\item bsp\+\_\+tools.\+h中提供了将bsp数据接收回调函数设置为任务的接口，通过这种方式，可以进一步提高整个系统的实时性，同时保证高优先级的任务一定按时执行。 
\end{DoxyItemize}